package fr.mairie.parc.dao.impl;

import java.util.List;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;

import fr.mairie.parc.dao.TechnicienDao;
import fr.mairie.parc.dao.mapper.TechnicienRowMapper;
import fr.mairie.parc.domain.Technicien;

public class TechnicienDaoImpl implements TechnicienDao{

	@Autowired
	private JdbcTemplate jdbcTemplate;

	@Autowired
	public void setDataSource(DataSource dataSource) {
		this.jdbcTemplate = new JdbcTemplate(dataSource);
	}

	public JdbcTemplate getJdbcTempalete() {
		return jdbcTemplate;
	}

	@Autowired
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Technicien> selectAll() {
		return jdbcTemplate.query("SELECT idTechnicien, nom, prenom, email" +
				"" + " FROM technicien",
						new TechnicienRowMapper());
	}

	@Override
	public void addTechnicien(Technicien technicien) {
		jdbcTemplate.update("INSERT INTO technicien (nom, prenom, email) values (?,?,?)",
				new Object [] {
							   technicien.getNom(),
							   technicien.getPrenom(),
							   technicien.getEmail()
							   
							   });
		
	}

	@Override
	public Technicien getTechnicienById(int id) {
		return (Technicien) jdbcTemplate.queryForObject("SELECT * FROM technicien WHERE idTechnicien=?",
				new Object [] {id},
				new TechnicienRowMapper());
	}

	@Override
	public void updateTechnicien(Technicien technicien) {
		jdbcTemplate.update("UPDATE technicien SET nom = ? AND prenom=? AND " +
				" email=? WHERE idTechnicien = ? ",
                new Object [] {technicien.getNom(),
							   technicien.getPrenom(),
							   technicien.getEmail()
							   
				});
		
	}

	@Override
	public void deleteTechnicien(Technicien technicien) {
		jdbcTemplate.update("DELETE FROM technicien WHERE idTechnicien= ?", 
				new Object[] {technicien.getIdTechnicien()});
		
	}
	

}
